package com.dhcc.bpm.modules.scf.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 再生资源公司入库信息表实体类  再生入库
 *
 *   scf_renewable_out_info_renewable_in 出库 入库 关联表
 */
@Data
@TableName("scf_renewable_in_info")
public class ScfRenewableInInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @TableId(value = "ROW_ID", type = IdType.INPUT)
    private String rowId;

    /**
     * 入库单号-一次货运多次入库
     */
    @TableField("RENEWABLE_IN_NUM")
    @ExcelProperty("再生资源企业入库单号")
    private String renewableInNum;

    /**
     * 入库日期（yyyyMMdd）
     */
    @TableField("RENEWABLE_IN_DATE")
    @ExcelProperty("入库时间")
    private String renewableInDate;

    /**
     * 商品规格
     */
    @TableField("SPEC_NAME")
    @ExcelProperty("货品名称")
    private String specName;

    /**
     * 车牌号
     */
    @TableField("TRUCK_NUM")
    @ExcelProperty("对应车牌号码")
    private String truckNum;

    /**
     * 驾驶证号
     */
    @TableField("LICENSE")
    @ExcelProperty("对应司机驾驶证号")
    private String license;

    /**
     * 采购合同编号
     */
    @TableField("CONTRACT_NUM")
    @ExcelProperty("对应采购合同编号")
    private String contractNum;

    /**
     * 计量单位
     */
    @TableField("UNIT")
    @ExcelProperty("计量单位")
    private String unit;

    /**
     * 毛重
     */
    @TableField("ROUGH_WEIGHT")
    @ExcelProperty("毛重（kg）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal roughWeight;

    /**
     * 皮重
     */
    @TableField("TARE_WEIGHT")
    @ExcelProperty("皮重（kg）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal tareWeight;

    /**
     * 扣重
     */
    @TableField("DEDUCT_WEIGHT")
    @ExcelProperty("扣重（kg）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal deductWeight;

    /**
     * 净重
     */
    @TableField("NET_WEIGHT")
    @ExcelProperty("净重（kg）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal netWeight;

    /**
     * 单价
     */
    @TableField("UNIT_PRICE")
    @ExcelProperty("入库单价(元）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal unitPrice;

    /**
     * 数量
     */
    @TableField("SPEC_NUM")
    @ExcelProperty("入库数量")
    private String specNum;

    /**
     * 金额
     */
    @TableField("AMOUNT")
    @ExcelProperty("金额(元）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal amount;

    /**
     * 折扣金额
     */
    @TableField("DISCOUNT_AMOUNT")
    @ExcelProperty("折让金额(元）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal discountAmount;

    /**
     * 奖励金额
     */
    @TableField("REWARD_AMOUNT")
    @ExcelProperty("奖励金额(元）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal rewardAmount;

    /**
     * 结算金额
     */
    @TableField("SETTLEMENT_AMOUNT")
    @ExcelProperty("结算金额(元）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal settlementAmount;

    /**
     * 已付金额(默认为0)
     */
    @TableField("PAID_AMOUNT")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal paidAmount;

    /**
     * 支付状态(0.未支付，1部分支付，2已支付)
     */
    @TableField("PAY_STS")
    private String paySts;


    /**
     * 录入人
     */
    @TableField("RECORDER")
    private String recorder;

    /**
     * 录入日期
     */
    @TableField("RECORD_DATE")
    private String recordDate;

    /**
     * 录入时间
     */
    @TableField("RECORD_TIME")
    private String recordTime;


    @TableField("ORG_CODE")
    @ExcelProperty("所属公司编码")
    private String orgCode;

}
